package erfgame.frontend.desktop.view.terrain.iso.interaction;

import java.util.List;

import erfgame.core.graphics.renderer.EntityRenderer;

public class InteractionDescription {
	private String id;
	private String name;
	private String description;
	private EntityRenderer renderer;
	private EntityInteractionFactory interactionFactory;
	private List<InteractionDescription> children;

	public InteractionDescription( String id, String name, String description ) {
		this( id, name, description, null, null, null );
	}

	public InteractionDescription( String id, String name, String description, EntityRenderer renderer ) {
		this( id, name, description, renderer, null, null );
	}

	public InteractionDescription( String id, String name, String description, EntityInteractionFactory interactionFactory ) {
		this( id, name, description, null, interactionFactory, null );
	}

	public InteractionDescription( String id, String name, String description, EntityRenderer renderer, EntityInteractionFactory interactionFactory ) {
		this( id, name, description, renderer, interactionFactory, null );
	}

	public InteractionDescription( String id, String name, String description, List<InteractionDescription> children ) {
		this( id, name, description, null, null, children );
	}

	public InteractionDescription( String id, String name, String description, EntityRenderer renderer, List<InteractionDescription> children ) {
		this( id, name, description, renderer, null, children );
	}

	public InteractionDescription( String id, String name, String description, EntityInteractionFactory interactionFactory, List<InteractionDescription> children ) {
		this( id, name, description, null, interactionFactory, children );
	}
	
	public InteractionDescription( String id, String name, String description, EntityRenderer renderer, EntityInteractionFactory interactionFactory, List<InteractionDescription> children ) {
		this.id = id;
		this.name = name;
		this.description = description;
		this.renderer = renderer;
		this.interactionFactory = interactionFactory;
		this.children = children;
	}
	
	public String getId() {
		return this.id;
	}
	
	public String getName() {
		return this.name;
	}
	
	public String getDescription() {
		return this.description;
	}
	
	public EntityRenderer getRenderer() {
		return this.renderer;
	}

	public EntityInteractionFactory getInteractionFactory() {
		return this.interactionFactory;
	}
	
	public List<InteractionDescription> getChildren() {
		return this.children;
	}
}
